package com.xdcplus.web.mapper.wip;

import com.xdcplus.mp.mapper.IBaseMapper;
import com.xdcplus.web.common.datasource.Doris;
import com.xdcplus.web.common.pojo.dto.*;
import com.xdcplus.web.common.pojo.entity.WipMarkingElSummary;
import com.xdcplus.web.common.pojo.entity.WipMarkingIvCount;
import com.xdcplus.web.common.pojo.entity.WipMarkingIvSummary;
import com.xdcplus.web.common.pojo.entity.WipMarkingPackInfo;
import com.xdcplus.web.common.pojo.entity.wip.WipMarking;
import com.xdcplus.web.common.pojo.query.wip.WipMarkingQuery;
import com.xdcplus.web.common.pojo.vo.WipMarkingElSummaryVO;
import com.xdcplus.web.common.pojo.vo.WipMarkingIvCountVO;
import com.xdcplus.web.common.pojo.vo.WipMarkingIvSummaryVO;
import com.xdcplus.web.common.pojo.vo.WipMarkingPackInfoVO;
import org.apache.ibatis.annotations.Param;

import java.sql.Timestamp;
import java.util.List;

/**
 * 打标管理表(WipMarking)表数据库访问层
 *
 * @author Devin.sang
 * @since 2023-05-15 22:05:44
 */
public interface WipMarkingMapper extends IBaseMapper<WipMarking> {

    /**
     * 查询打标管理表(WipMarking)
     *
     * @param wipMarkingQuery 打标管理表(WipMarking)查询
     * @return {@link List<WipMarking>}
     */
    List<WipMarking> queryWipMarking(WipMarkingQuery wipMarkingQuery);

    List<String> getOpePathiMain();

    void updateCurrentOpeCodeByMarkingId(@Param("id") Long id, @Param("currentOpeCode") String currentOpeCode);
    @Doris
    List<WipMarkingElSummaryDTO> queryWipMarkingElSummary(@Param("startTime") Timestamp startTime,
                                                          @Param("endTime") Timestamp endTime, @Param("markingIdFk") Long markingIdFk);
    @Doris
    List<WipMarkingIvCountDTO> queryWipMarkingIvCount(@Param("startTime") Timestamp startTime,
                                                      @Param("endTime") Timestamp endTime, @Param("markingIdFk") Long markingIdFk);
    @Doris
    List<WipMarkingIvSummaryDTO> queryWipMarkingIvSummary(@Param("startTime") Timestamp startTime,
                                                          @Param("endTime") Timestamp endTime, @Param("markingIdFk") Long markingIdFk);
    @Doris
    List<WipMarkingPackInfoDTO> queryWipMarkingPackInfo(@Param("startTime") String startTime,
                                                        @Param("endTime") String endTime, @Param("markingIdFk") Long markingIdFk);

    List<WipMarkingScreenDTO> queryMarkingScreen(@Param("startTime") String startTime,
                                                      @Param("endTime") String endTime, @Param("markingIdFk") Long markingIdFk);


}
